package com.niit.cms.service;

import com.niit.cms.entity.Progress;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.util.List;

/**
 * (Progress)表服务接口
 *
 * @author makejava
 * @since 2022-06-28 10:55:40
 */
public interface ProgressService {

    /**
     * 通过ID查询单条数据
     *
     * @param uid 主键
     * @return 实例对象
     */
    Progress queryById(Integer uid, Integer vid, Integer courseId);

    /**
     * 分页查询
     *
     * @param progress    筛选条件
     * @param pageRequest 分页对象
     * @return 查询结果
     */
    Page<Progress> queryByPage(Progress progress, PageRequest pageRequest);

    /**
     * 新增数据
     *
     * @param progress 实例对象
     * @return 实例对象
     */
    Progress insert(Progress progress);

    /**
     * 修改数据
     *
     * @param progress 实例对象
     * @return 实例对象
     */
    Progress update(Progress progress);

    /**
     * 通过主键删除数据
     *
     * @param uid 主键
     * @return 是否成功
     */
    boolean deleteById(Integer uid, Integer vid, Integer courseId);
    /**
     * 通过uid查询数据
     *
     * @param uid
     * @return 实例对象
     */
    List<Progress> queryListByUid(Integer uid);
    /**
     * 通过courseId查询数据
     *
     * @param courseId
     * @return 实例对象
     */
    List<Progress> queryListByCourseIdState(Integer courseId, int state);
    /**
     * 通过courseId查询数据
     *
     * @param courseId
     * @return 实例对象
     */
    List<Progress> queryListByCourseId(Integer courseId);
}
